c指標 --筆記2返回指標值的函式
返回指標值的函式
一般帶回指標值的函式,定義形式為:
int *a (int x, int y);
看這個經典案例:
#include <stdio.h> int main(int argc, char const *argv[]) { double score[][4] = {{60.0, 70.0, 80.5, 20.1}, {60.0, 70.0, 80.5, 21.1}, {60.0, 70.0, 80.5, 22.1}}; double *search(double(*pointer)[4], int n); double *p; int i, m=2; p = search(score, m); for (i = 0;i < 4; i++) { printf("%f\t", *(p + i)); } printf("\n"); } double *search(double(*pointer)[4], int n) { double *pt; pt = *(pointer + n); return pt; }
指標函式和函式指標的區別
1. 指標函式是指帶指標的函式, 即本質是一個函式
2. 函式指標是指向函式的指標變數, 因而函式指標本身首先是指標變數, 只不過該指標指向函式
指標陣列
概念:
一個數組,若其元素均被指標型別資料,稱為指標陣列, 也就是說,指標陣列中的每一個元素
都相當於一個指標變數。
一維指標陣列的定義形式為: int *name[4];
#include <stdio.h> int main(int argc, char const *argv[]) { int a[5] = {1, 3, 5, 7, 9}; int *name[5] = {&a[0], &a[1], &a[2], &a[3], &a[4]}; int i; for(i = 0; i < 5; i++) { printf("%d ", *name[i]); } printf("\n"); }
指向指標的指標
怎麼定義一個指向指標資料的指標變數呢?
形式如: char **p;
p前面有兩個*號, *運算子的結合性是從右到左, 因此**p相當於*(*p), 顯然會*p是
指標變數的定義形式。如果沒有最前面的*, 那就是定義指向字元資料的指標變數。
現在它前面有有一個*號, 表示指標變數p是指向字元指標變數的。*p就是p所指向的另一
個指標變數
程式碼:
#include <stdio.h> int main(int argc, char const *argv[]) { char *name[] = {"abc", "efg", "higk"}; char **p; int i; for (i=0; i<3;i++) { p = name + i; printf("%s\n", *p); } }
總結
相關推薦
c指標 --筆記2返回指標值的函式
返回指標值的函式 一般帶回指標值的函式,定義形式為: int *a (int x, int y); 看這個經典案例: #include <stdio.h> int main(int argc, char const *argv[]) { double sco
指標系統學習7-返回指標值的函式
1.返回指標值的函式 一個函式可以帶回一個整型值、字元值、實型值等,也可以帶回指標型的資料,即地址。其概念與以前類似,只是帶回的值的型別是指標型別而已。這種帶回指標值的函式,一般定義形式為 型別名 *函式名(引數表列);
C++學習筆記----2.4 C++引用在本質上是什麽,它和指針到底有什麽區別
times 數據 添加 eof 相關 參數 副本 span 符號 從概念上講。指針從本質上講就是存放變量地址的一個變量,在邏輯上是獨立的,它可以被改變,包括其所指向的地址的改變和其指向的地址中所存放的數據的改變。 而引用是一個別名,它在邏輯上不是獨立的,它的存在具有依附性,
C++複習筆記(六)之函式指標和函式模板、類模板
一、函式指標 函式指標在C語言中的作用類似於c++中的多型,都是可以實現框架的搭建,程式碼的相容性高。 函式三要素:名稱、引數、返回值 C語言可以通過typedef為函式型別重新命名,語法 typedef 返回值型別(型別名稱)(引數列表);如下程式碼所示: #in
C++學習筆記----2.4 C++對象的內存模型
影響 sni 創建 clas esp cheng lac -c 如果 轉載自:http://c.biancheng.NET/cpp/biancheng/view/2995.html點擊打開鏈接 當對象被創建時,編譯器會為每個對象分配內存空間,包括成員變量和成員函數。直觀的認
36、我的C#學習筆記2
c#類是一種數據結構,它可以封裝數據成員、函數成員和其它的類。類是創建對象的模板。C#中所有語句都必須位於類內。因此,類是C#語言的核心和基本構成模塊。C#支持自定義類,使用C#編程就是編寫自己的類來描述實際需要解決的問題。類就好比是醫院的各個部門,如:內科、骨科、泌尿科、眼科等,在各科室中都有自己的工作方法
c++ primer 筆記 2基本內置類型
表示範圍 我們 無符號 char 符號 2個 註意 == AI 2-1註意: 1、c++只規定了各類型的內存最小尺寸,同時字節數至少 long long >=long>=int>=short; 2、字符型分為 char、signed char和unsign
C#學習筆記2
comm 保留 默認值 system AI sys In 命名空間 num C#數組 當創建一個數組時,C# 編譯器會根據數組類型隱式初始化每個數組元素為一個默認值。例如,int 數組的所有元素都會被初始化為 0。 Array類在 System 命名空間中定義,是所有數組的
C++過載(2):通過成員函式和友元函式過載
分別通過成員函式和友元函式完成過載 #include <iostream> using namespace std; class Complex { public: Complex(double real =0,double imag=0):real(real),imag(i
C++陣列(C++學習筆記 2)
陣列(array) 陣列是相同型別元素的集合。例如,整型陣列,字串陣列等。 陣列是一種順序容器,它包含單一型別的元素。 C++資料型別 c++中資料型別分為兩種:預定義型別和自定義資料型別。 預定義型別:即預先定義的基本內建資料型別。 自定義資料型別:允許使用者進行資料型別的
C++學習筆記3_類.和相關函式
1. 類*在C++中,struct和class沒有明顯差別,不同C#,class一定要new(手動開闢記憶體)出來struct Hero{ char name[64]; int sex;}void print(struct Hero &h){ ...}class AdvHero{ public: ch
《機器學習》筆記---2 模型的損失函式與正則化
損失函式 度量模型一次預測的好壞 L( Y,f(X) ) 常見型別: 期望風險(風險函式) 度量平均意義下的模型預測的好壞,即損失函式的期望。(關於 聯行分佈的期望,未知,無法直接計算) 經驗風險 模型關於訓練
effective c++讀書筆記——用內聯模板函式替換類似函式的巨集定義
我們來看下面巨集定義: #define CALL_WITH_MAX(a, b) f((a) > (b) ? (a) : (b)) 這般長的巨集有著太多缺點,光是想到它們就讓人痛苦不堪。無論何時當你寫出這種
c++面試筆記2(關於main和獲取不重複的隨機數)
1、先於main函式執行的函式或語句,以及在main函式之後會被執行的語句。 全域性物件(會呼叫它的建構函式)在main函式之前執行,全域性物件的生命週期跨越整個程式的執行時間,優先於main函式被呼叫,同樣,全域性物件(會呼叫它的解構函式),在main函式之後執行,會在main執行完畢之後
Object C學習筆記2-NSLog 格式化輸出資料
1 . 幾種常用型別變數宣告 int i =10; BOOL isShow=YES; BOOL isShow=1; float f = 3.14159
關於 指標的引用和指標值傳遞
1, 形參是實參的拷貝(值一樣,儲存地址不一樣)。包括指標變數,指標變數 int *P=&a; p只是儲存地址的變數。 請欣賞第一段程式碼,回答輸出結果(18分) #include<stdio.h> #include<iostream
C-學習筆記2
資料的輸入輸出 C語言沒有自己的輸入/輸出語句,但它提供了豐富的輸入/輸出標準庫函式。由於標準輸入/數出庫函式是在標頭檔案stdio.h中定義的,因此,在使用這些庫函式之前,要用於預編譯命令#include將“標頭檔案”包括到原始檔中:
c學習筆記--3關鍵字 巨集與函式定義
好久之前的了,學習c語言的筆記。 依舊是老套路,從基礎的變數型別,到函式定義一步步學起 #include <stdio.h> #include <string.h> //函式定義 與關鍵字 //define用於巨集定義 程式中不能更
c學習筆記--2變數型別與基本操作
好久之前的了,學習c語言的筆記。 依舊是老套路,從基礎的變數型別,到函式定義一步步學起 #include <stdio.h> #include <string.h> //c語言的變數型別與基本操作 void test2() { //數
北京大學MOOC C++學習筆記(五)虛擬函式和多型
虛擬函式: 在類的定義中,前面有 virtual 關鍵字的成員函式就是虛擬函式。 class base { virtual int get() ; }; int base::get() { } virtual 關鍵字只用在類定義裡的函式宣告中,寫函式體時不用。 多型的表現