關於c語言中的定義int型別的常量

2021-03-05 09:21:46 字數 3134 閱讀 8746

1樓:匿名使用者

可以這樣定義 但行尾必須加分號。

不過你這樣定義的是變數 並不是常量

要定義常量可以寫為

const int a = 0x12345678;

或者直接用巨集定義

#define const_a 0x12345678

ps:巨集定義時無需加分號

int a =0x12345678;//定義一個變數a 並賦值為0x12345678. 這時會給a分配一個sizeof(int)的空間,一般為4

char b;  //定義字元變數b

b = (((unsigned char *)&(a))[0]);

//這個需要分幾步來理解

//&(a)取a的地址

//((unsigned char *)&(a)) 把它轉換成無符號字元型指標

//這個指標是指向a的首地址的 所以 這個無符號字元型指標指向的區域就有和a同樣的值

//即四個位元組,分別為0x12 0x34 0x56 0x78

//((unsigned char *)&(a))[0] 取第一個值 即0x12

//所以最終b的值為0x12

2樓:匿名使用者

1、定義常量可以寫為

const int a = 0x12345678;

或者直接用巨集定義

#define const_a 0x123456782、常量整體上分兩類,一類是整型常量,一類是浮點型常量。細緻上分,整型常量還包括字元常量、字串常量。

①. 整型常量 如6,27,-299

②. 浮點型常量 如5.43,-2.3,5.43f(單精度)、2.3f(小寫的f也可以)

③. 字元常量 如『6』,『a』,l'中'(寬字元常量)④. 字串常量 如「6」,「男」,「nanabc」

3樓:匿名使用者

可以,這是給a賦一個十六進位制的值。

第二句要這麼分析,先看括號裡的

那麼就是將a取其地址後強制轉換成無符號char指標,然後把這個指標指向的地址的第一個char值賦給b。

也就是假如a佔四個位元組,b取它的第一個位元組的值

4樓:大力金剛神

可以 0x代表16進位制,但是你寫的0x12345678超過了int大小範圍,必須改小才能正常使用。

b = (((unsigned char *)&(a))[0]);

unsigned char*是無符號字元指標型,在這裡對把陣列a用&取地址,強制轉換成了unsigned char*,然後對它進行取第一個數,就相當於取出a陣列第一個數通過ascii碼轉換成字元儲存在b中,

例如 int a[2]=;

char b;

b = (((unsigned char *)&(a))[0]);

printf("%c",b);

輸出就會是a,因為65是a的ascii碼

5樓:夜禮服假面

可以這樣定義

int a =0x12345678;表示a的值為十六進位制的12345678

b = (((unsigned char *)&(a))[0]);

將a的記憶體地址指標轉換為unsigned char *,並取第0號元素值

c語言中是如何定義常量的啊

6樓:劉世媛

我們在用c程式設計時有時需要定義不變的變數,即常量,有兩種方法。

例如:定義常量pi的兩種方式:

1. #define pi 3.1415926f;

2. const float pi 3.1415926f;

常量有整型常量、浮點型常量、字元型常量及字串常量。 『常量定義是指定義符號常量,用一個識別符號來代表一個常量,通過巨集定義預處理指令來實現。

格式:#define識別符號常量

由使用者命名的識別符號是符號常量名。作為符號常量名,一般大寫。一旦定義,在程式中凡是出現常量的地方均可用符號常量名來代替。

對使用了符號常量的程式在編譯前會以實際常量替代符號常量。

全域性變數和區域性變數的區別:

7樓:匿名使用者

#define count 60

這叫巨集定義,不叫常量

常量的定義:

const int count = 60;

形參指定型別,實參指定數值

8樓:天雲一號

c語言定義常量常用的方法有以下2種:

第一種:巨集定義

#define n 3  // 定義了一個常量為3的巨集n,在程式中n就代表3

第二種:給變數初始化賦值

int a = 2;  // 定義了一個int型變數,並賦值為2,其實這是用變數來定義常量

注:定義常量還是用巨集定義的比較多。

9樓:匿名使用者

常量的定義:

#define count 60

這就定義了一個常量 count 它的值是一個常量60 在整個程式中不變

關於實際引數和,形式引數:

可以這樣通俗的去理解:

主調函式中的引數是實際引數,被調函式中的引數是形式引數,比如說:如下**段

被調函式:

int max(int a,int b)

主調函式:

main()

在北調函式max(int a,int b)中a,b是形式引數在主函式中max(a,b)中的a,b是實際引數;

10樓:匿名使用者

可以用預處理命令#indefine

和const靜態定義個數便是常量

形參就是函式定義時,所給的引數;而實參就是在main函式中呼叫時所使用的引數,兩者可以相同也可以不相同。

11樓:匿名使用者

實參在主調函式中,形參在被調函式中

當使用的是值傳遞方式時,實參值傳遞給形參,但是形參不把值傳回實參,即單向傳遞。

當使用地址傳遞時,實參地址傳遞給形參,形參把地址傳回實參,是雙向傳遞。

12樓:

#define

定義在全域性區

13樓:☆行雲流水

#define count 100

實參在主調函式中,形參在被調函式中

關於C語言中陣列的定義,C語言中如何定義陣列

一樣的,陣列在做函式引數時,傳遞給函式的都是陣列的首指標,哪怕你的函式這樣寫 void swp int p 在呼叫的時候swp array 也是可以的。只要傳遞給函式一個陣列的首指標就行了,而你的array正好是陣列的首指標。char s 10 123 是表示前三個元素分別是1,2,3但s 2 0 ...

c語言關於int和long型別的範圍

編譯器不同,寬度是不 相同,分別如下 16位編譯器 int 2個位元組 long 4個位元組 long long 8個位元組 unsigned long 4個位元組 32位編譯器 int 2個位元組 long 4個位元組 long long 8個位元組 unsigned long 4個位元組 64位...

在c 語言中定義一string型別的字串如何取字串

string str 123456789 if str.length 5 使用substr一定要判斷否則程式會越界!用字元指標 指向該字串 此時指標指向字串的首地址,然後利用指標的移動取字串中的字元 include include using namespace std int main 可以將st...