1. 程式人生 > >c指標 --筆記2返回指標值的函式

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 關鍵字只用在類定義裡的函式宣告中,寫函式體時不用。 多型的表現