都是一些大致概括性知識 讓我們對c有一個初步認識,
沒有詳細展開贅述,
一、什么是C語言
二、第一個C語言程式
三、資料型別
四、變數、常量 字串+轉義字符+注釋
一、什么是C語言
C語言是一門通用計算機編程語言,廣泛應用于底層開發.........
我們將編程比作是一棟大廈,c是地基,要想大廈屹立不倒,地基切忌操之過急!
二、第一個C語言程式
對于大多數人而言是"hello world"
但我希望
#include<stdio.h>
int main() {
printf("我們是最棒的!\n");
return 0;
}
這是一種自我激勵,也是鞭策,
送給大家一句話:欲戴其冠,必承其重!
三、資料型別
char //字符資料型別
short //短整型
int //整形
long //長整型
long long //更長的整形
float //單精度浮點數
double //雙精度浮點數
//C語言有沒有字串型別?
C 語言雖然沒有字串型別,但是 C語言提是存在字串這個概念的,也就是字串常量,
1、char 字符型別
注:表示字符要加單引號 eg:char = 'z'
#include<stdio.h>
int main() {
char w = 'z';
printf("%c\n", w);
return 0;
}
上述代碼只是一個很簡單的例子
那么下面一個呢?
#include<stdio.h>
int main() {
char w = 'zjt';
printf("%c\n", w);
return 0;
}
還是輸出 “z”嗎?

因為在x86平臺上,資料是以little-endian 的形式排列的,低位位元組放在記憶體的低地址,高位位元組放在記憶體的高地址,我們看'1234',從左到右從1到4,然而在計算機中存放的格式是從0x04到0x01,就是說'1234'的低位4存放在計算機的記憶體低地址位,'1234'的高位1存放在記憶體的高地址位,所以當把'1234'給變數a時,系統把記憶體中的地址中存放的4給a,其余的全部不要了,
ASCII碼的列印
#include<stdio.h>
int main() {
char w = 98;
printf("%c\n", w);
return 0;
}

上述是數字->字符
那么字符到數字呢?
#include<stdio.h>
int main() {
int w = 'a';
printf("%c\n", w);
return 0;
}

2、整型
處理不同資料的時候需要不同的變數范圍,
各個型別的大小都不同
#include<stdio.h>
int main() {
printf("%d\n", sizeof(char));
printf("%d\n", sizeof(int));
printf("%d\n", sizeof(long));
printf("%d\n", sizeof(long long));
printf("%d\n", sizeof(float));
printf("%d\n", sizeof(double));
printf("%d\n", sizeof(long double));
}

至于整形的其他本質不同 博主會在后續的文章中探討 這里只是對自己一個月自學的簡單小結,
3.浮點型
常見 float與double后期還會學習其他的浮點型別 ,在這不做過多闡述
二者的區別主要是精度表示不一樣float的型別至少能表示六位有效數字,double型別至少能表示視為有效數字,但若不加特殊說明,c編譯器會直接把float型別轉化成double型別,
#include<stdio.h>
int main()
{
float a = 5.5;
double b = 6.1;
printf("%f\n", a);
printf("%f\n", b);
return 0;
}

通過上面代碼我們可以了解到,無論是float 還是double,小數點后面數字位數都相等
但是取幾位有效數字怎么做呢?
#include<stdio.h>
int main()
{
float a = 2.2;
double b = 2.4;
printf("%.3f\n", b);
printf("%f\n", a);
printf("%.2f\n", a);
printf("%.1f\n", a);
printf("%.3f\n", a);
printf("%.4f\n", a);
return 0;
}

可以很清晰的看出“.Xf “那么小數點后就是幾位有效數字
用%e列印指數記數法的浮點數
#include<stdio.h>
int main() {
double a = 18232.321;
printf("%e\n", a);
return 0;
}
浮點型還有許多其他知識,待博主詳細學完后再來更新,目前知識大致的寫一下,
四、變數、常量 字串+轉義字符+注釋
變數的定義:
char ch = 'w';
int weight = 120;
int salary = 20000;
變數的分類有區域變數,全域變數,
#include <stdio.h>
int global = 2019;//全域變數
int main()
{
int local = 2018;//區域變數//下面定義的global會不會有問題?
int global = 2020;//區域變數
printf("global = %d\n", global);
return 0;
}

上面的區域變數global變數的定義其實沒有什么問題的!
當區域變數和全域變數同名的時候,區域變數優先使用
常量
有如下四種:1、字面常量 eg:3.14
100
‘abc’ 等
2、const修飾的常變數
#include<stdio.h>
int main() {
int a = 10;
printf("%d\n", a);
a = 20;
printf("%d\n", a);
return 0;

#include<stdio.h>
int main( ){
const a = 10;
printf("%d\n", a);
a = 20;
printf("%d\n", a);
return 0;
}

第二個代碼無法編譯
因為有const 修飾變數指的是 雖然它還是變數,但是它的值是一個常量,無法被更改,(個人理解)
3、//#define的識別符號常量
#include<stdio.h>
#define MAX 100
int main() {
printf("%d\n", MAX);
return 0;
}
4、 //列舉常量演示
enum Sex
{
//列舉這種型別的可能取值 - 就是列舉常量
MALE,
FEMALE,
SECRET
};
#include<stdio.h>
int main() {
printf("%d\n", MALE);
printf("%d\n", FEMALE);
printf("%d\n", SECRET);
return 0;
}

//注:列舉常量的默認是從0開始,依次向下遞增1的
字串:用雙引號引起來 eg:”aj“ ”sad“ ”dada“等
注:字串的結束標志是一個 \0 的轉義字符,在計算字串長度的時候 \0 是結束標志,不算作字串內容(即不用敲)
#include<stdio.h>
int main() {
char zjt[] = "abcd";//字串1
char dy[] = { 'a','b','c','d' };//字串2
char dsg[] = { 'a','b','c','d','\0' };//字串3
char dagg[5]= { 'a','b','c','d' };//字串4
printf("%s\n%s\n%s\n%s\n", zjt, dy, dagg,dsg);
return 0;
}
我們來分析一下上述代碼,仔細觀察一下,字串2與字串3只相差一個‘\0'
在字串中'\0'表示的是結束輸出,所以字串2在輸出abcd后繼續在快取區輸出,直到找到’\0'為止,
而其他三種的正確表示方法都是我目前所了解的 后續如果還有其他方法會在未來的博客中持續更新,
為了讓讀者加深一步理解——我們可以通過測字串的長度分析
#include<stdio.h>
#include<string.h>
int main() {
char zjt[] = "abcd";//字串1
char dy[] = { 'a','b','c','d' };//字串2
char dsg[] = { 'a','b','c','d','\0' };//字串3
char dagg[5]= { 'a','b','c','d' };//字串4
printf("%s\n%s\n%s\n%s\n", zjt, dy, dagg,dsg);
printf("%d\n%d\n%d\n", strlen(zjt),strlen(dy),strlen(dsg));
return 0;
}

#include<stdio.h>
int main() {
char arr1[] = "abc";//代碼1
char arr2[] = { 'a','b','c' };//代碼2
printf("%s\n%s\n", arr1, arr2);
return 0;
}

我們可以通過監視器觀察到 代碼1雖然沒有敲‘\0' 但實際上是輸入了\0的
通過這個就大致可以理解上面字串長度了
轉義字符:
轉義字符顧名思義就是轉變意思,
轉義字符 釋義
\? 在書寫連續多個問號時使用,防止他們被決議成三字母詞
\' 用于表示字符常量
' \“ 用于表示一個字串內部的雙引號 \\ 用于表示一個反斜杠,防止它被解釋為一個轉義序列符, \a 警告字符,蜂鳴
\b 退格符
\f 進紙符
\n 換行
\r 回車
\t 水平制表符
\v 垂直制表符
\ddd
ddd表示1~3個八進制的數字, 如: \130 X
\xdd dd表示2個十六進制數字, 如: \x30 0
我們可以做一個趣味性的題目
測驗:c:\test\628\test.c.ca\nasm的長度
上代碼
#include<stdio.h>
#include<string.h>
int main() {
char arr[] = "c:\test\628\test.c.ca\nasm";
printf("%d\n", strlen(arr));
return 0;
}

在測量位元組長度是轉義字符算一個位元組
注釋:1. 代碼中有不需要的代碼可以直接洗掉,也可以注釋掉
2. 代碼中有些代碼比較難懂,可以加一下注釋文字
C語言風格的注釋 /*xxxxxx*/ 缺陷:不能嵌套注釋
C++風格的注釋 //xxxxxxxx 可以注釋一行也可以注釋多行
第一次寫這種博客,還有許多不足之處,但創作不易,還請大家多多支持!
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/339201.html
標籤:其他
上一篇:微信小程式開發———音樂播放器
