本文目錄一覽:
- 1、幫忙看看以下命名符不符合C語言標示符的命名!
- 2、C語言用戶標識符哪個選項是都不合法的?為什麼?
- 3、c語言中標識符定義錯誤咋回事
- 4、在c語言中自定義了一個函數,在main中調用時提示找不到標識符,怎麼辦?
幫忙看看以下命名符不符合C語言標示符的命名!
c
規定,標識符只能是字母
a~z,a~z
、數字
0~9
、下劃線_
組成的字符串,並且其第一個字符必須是字母或下劃線。
所以要判斷命名符不符合c語言標示符,很簡單,
第一步:除了字母、數字、和下劃線,還有沒有其他類的字符,有就不符合
第二步:第一個字符是不是字母或下劃線,不是就不符合
結果全都不是。
C語言用戶標識符哪個選項是都不合法的?為什麼?
c語言中標識符只能是下劃線、數字、字母(大小寫均可,一般變量用小寫、常量用大寫),且不能是數字開頭。
庫函數其實也是一種用戶自定義標識符。
不是自定義的,只有保留的關鍵字。而enum是枚舉的關鍵字。
比如一個函數裡面,如果你不準備調用輸出語句printf,那麼完全可以
void func()
{
int printf=0;
printf++;
}做這樣的設置是合法的。
C語言
標識符由字母(A-Z,a-z)、數字(0-9)、下劃線“_”組成,並且首字符不能是數字,但可以是字母或者下劃線。例如,正確的標識符:abc,a1,prog_to。
不能把C語言關鍵字作為用戶標識符,例如if,for,while等。標識符長度是由機器上的編譯系統決定的,一般的限制為8字符(註:8字符長度限制是C89標準,C99標準已經擴充長度,其實大部分工業標準都更長)。
以上內容參考:百度百科-標識符
c語言中標識符定義錯誤咋回事
LS的說的很對,不過不詳細,我補充一下
首先,lz在scanf語句中用*a,*b,*c,*d是錯誤的,因為scanf語句里必須是地址表達式
而一個指針變量加上*(間接訪問運算符)後,將直接訪問該指針指向的存儲單元。
然後,指針變量是用來存放內存地址的,它是無法直接存放字節地址(即數據)的。
在LZ的程序中,LZ僅僅定義了一個指針變量,並沒有使它指向一個地址。
所以LZ的scanf語句中,即使將*a,*b,*c,*d改為啊a,b,c,d也是無效的,即使程序顯示0 error
因為LZ定義的指針沒有指向任何一個地址,
換言之,LZ的scanf語句中輸入的數據根本存不進內存中。
比較簡單的改進就是讓指針指向一個內存地址
#include “stdio.h”
void min(int *x,int *y);
int main()
{
int *a,*b,*c,*d,i,e,f,g,h;
a=e;
b=f;
c=g;
d=h;
scanf(“%d %d %d %d”,a,b,c,d);
for(i=1;i5;i++)
{
min(a,b);min(b,c);min(c,d);
printf(“%d %d %d %d\n”,*a,*b,*c,*d);
}
}
void min(int *x,int *y)
{
int z;
if(*x*y)
{
z=*x;
*x=*y;
*y=z;
}
}
最後,預祝lz早日學會c
在c語言中自定義了一個函數,在main中調用時提示找不到標識符,怎麼辦?
把定義的函數放在,main函數之前即可。
自定義的函數需要聲明在調用之前,比如說在main函數里調用自定義的fun(),則fun()的方法體需要寫在main函數之前。
在C語言中的執行總是從main函數開始的,無論main函數在哪個位置都肯定從它開始。如果你定義的函數在main函數之後。
而且在main函數前沒有進行該調用函數的聲明那麼當在main函數中調用的該函數系統將不認識,會有錯誤提示的,如果定義的函數在main函數之前,那麼就沒事了。
擴展資料:
C語言中標識符的使用規範:
1、標識符由字母(A-Z,a-z)、數字(0-9)、下劃線“_”組成,並且首字符不能是數字,但可以是字母或者下劃線。例如,正確的標識符:abc,a1,prog_to。
2、不能把C語言關鍵字作為用戶標識符,例如if,for,while等。
3、標識符長度是由機器上的編譯系統決定的,一般的限制為8字符(註:8字符長度限制是C89標準,C99標準已經擴充長度,其實大部分工業標準都更長)。
4、標識符對大小寫敏感,即嚴格區分大小寫。一般對變量名用小寫,符號常量命名用大寫。
5、標識符命名應做到“見名知意”,例如,長度(length),求和、總計(sum)。
參考資料來源:
百度百科—標識符
百度百科—main函數
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/160448.html