C語言課程心得(二)

一些常見錯誤

1.scanf()函數因爲不安全所以現在通常替換爲scanf_s()。(因爲scanf不管所定義的數組的長度 只要是輸入都會容納 所以不安全)
2.若輸入字符超過定義範圍需要適當調整。
3.若出現:
錯誤 1 error C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\lenovo\documents\visual studio 2013\projects\first.c\first.c\xzc.c 5 1 first.c
需要在#include前加#define _CRT_SECURE_NO_WARNINGS 1



scanf_s()函數

用法:

#include <stdio.h>

int main(){
int a;
char arr[5];
scanf_s("%d", &a);//此時需要加&(取地址符)
printf("%d", a);
scanf_s("%s", arr);//此時不需要加&因爲是數組
printf("%s\n", arr);
return 0;
}







常量

#include <stdio.h>

int main(){
3;//字面常量 (1)
const int num=4;//常屬性(不可改變) (2)
int n = 10;
int a[n]={0};//這樣不行而int a[10]={0};纔可以若const int n=10;也是不可以的 const int n;此時n還是變量但是具有常屬性(3)
return 0;
}
#include <stdio.h>
#define MAX 10 //define定義的標識符常量 (4)
int main(){
int a[MAX]={0};//此時可以運行即MAX爲純純常量
return 0;
}
枚舉常量 ----enum(枚舉關鍵字) (5)
表現形式:
enum Sex
{
MALE, //默認爲0
FEMALE, 1
SECRET 2
};
//三個爲枚舉常量
使用:
enum Sex s = MALE;//定義s爲MALE
int main(){
printf("%d", MALE); //結果爲0
s = FEMALE; //數值可以更改但必須是枚舉常量
return 0;
}



























字符串

存入:
char arr[]="abc";
區分:
char arr[]="abc";//此時arr[]存放有四個元素分別是a b c 和 0
輸出:abc
char ar[] = {'a', 'b', 'c'};//此時ar[]存放只有三個a b c
輸出:abc燙燙燙燙亂碼
char ar[] = {'a', 'b', 'c', 0或'\0'};//此時輸出爲abc
總結:
\0爲字符串輸出的結束標誌且\0的值爲0
char arr[] = "abc\0";//此時輸出結果爲abc
char arr[] = "ab\0c";//此時爲ab










strlen()函數

用法:
strlen(arr);//顯示字符串長度
注意:
使用前需要導入#include <string.h>
char arr[] = "avc";
char ar[] = {'a','d','w','s'};
printf("%d\n", strlen(arr));
printf("%d\n", strlen(ar));
\0不算字符串長度只是一個結束字符







轉義字符

\
即+字母所得結果不是字母本意了轉變了本來的意思
例如:
\n \t......
printf("c:\text\xzc\xzc.c");//此時輸出爲亂碼

printf("c:\text\xzc\xzc.c");//此時就爲正常路徑了 \轉義了\即 \爲單個\的意思不與別人構成轉義字符
一個轉義字符\n的長度爲1即printf("%d\n", strlen("abc\nc"));輸出結果爲5
總結:
一個字符串長度爲出去\的所有字母或數字(\32爲1個長度並不是\3和2兩個)或標點的個數之和
\123爲123的八進制
\x61爲61的十六進制










發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章