以前一直沒有注意的問題(不斷更新中。。。)

2021-08-05 18:45:38 字數 1335 閱讀 2188

- 以前一直沒注意的問題:

根據scanf函式的定義,其接收元素必須是型別與控制字串元素對應的變數的位址。&是取位址操作符,當接收元素不是位址時要用&獲得變數的位址,當接收元素已經是位址時就不用&了。

輸入整形陣列元素要加「&」(位址符號),輸入字串則不用。

scanf("%d",&a[i]);//讀取第i個值

scanf("%s",s[i]);//讀取第i個字串

對比
(1):char a;scanf("%c",&a);//字元要加

(2):char a[10];scant("%s",a);//字串陣列不用加

舉個例子
#include "stdio.h"

int main(void)

f(int* a)與f(int& a)的區別?

int i=5;

int &j=i;

說明:

(1)double & rr=1; 等價與 double temp; temp=double(1); double & rr=temp;

(2)int

a; int & p=a; int b=8; p=&b; //正確,指標變數的引用

void & a=3; //不正確,沒有變數或物件的型別是void

int & ri=null; //不正確,有空指標,無空引用

(3)int & ra=int; //不正確,不能用型別來初始化

int *p=new int; int & r=*p; //正確

(4)引用不同於一般變數,下面型別宣告是非法的:

int &b[3]; //不能建立引用陣列

int & *p; //不能建立指向引用的指標

int &&r; //不能建立引用的引用

(5)當使用&運算子取乙個引用的位址時,其值為所引用變數的位址,

2.引用引數

引用的乙個重要應用就是作為函式的引數。在使用引用做引數時不必使用*,並且又沒有位址與變數本身的差別,從而簡化了程式,

3. 引用和指標使用原則

1.在可以用引用的情況下,不要用指標;

2.引用不允許重新賦值.,當使用乙個變數指向不同的物件時,必須用指標;

3.引用不允許為空,當存在物件為空時,必須使用指標。

總結:引用的正常是固定數,不為空。指標用來移動,重新賦值,++。

喜歡的一些話(不斷更新)

人生最有價值的時刻,不是最後的功成名就,而是對未來正充滿期待與不安之時。其實題目很多時候不是水不水的問題,而是你對於題目是如何理解以及解決的?建議你有時間思考下這個問題,什麼樣的題目是難題以及他們為什麼是難的,是因為高深,還是因為複雜,還是因為這個問題所涉及的知識不在你的能力範圍之內?這幾個問題想明...

Beta 使用者問題反饋及處理 一直更新

使用者id 呂 張 問題描述 點選選擇物理實驗按鈕 子選單 選擇實驗,無響應 期望行為 點選選擇物理實驗按鈕 子選單 選擇實驗,選擇框隱去,左側資料欄出現對應選擇實驗的資料輸入 右側文件欄出現對應預習pdf檔案。使用者環境 chrome瀏覽器 版本要求符合 查明原因 chrome瀏覽器對某關鍵js檔...

mysqld 一直starting 的問題

今天開啟虛擬機器上的centos,發現啟動mysqld的時候,它一直處在starting.等了n久還沒起起來,也不failure。無奈,進不了系統,在網上也搜不到跟我相似的狀況。重啟,在grub介面改用單使用者模式 也就是方式1 進系統 被逼的。之後嘗試手動service mysqld start,...