對張量奇學長所提問題的解答

2021-07-24 05:56:51 字數 2133 閱讀 5590

1、 單精度浮點數的定義:float adf = 0.2;為什麼會警告?

因為0.2預設是雙精度,所以添上f即可,float adf = 0.2f;

2、 int和long int有多少位?

#include

int main()

我的輸出是4,4

3、 怎樣正確的比較float型變數和0的大小?

float型變數和「零值」比較的方法:

const float epsinon = 0.000001;

if ((x >= - epsinon) && (x <=epsinon))

浮點型變數並不精確,其中epsinon是允許的誤差(即精度),所以不可將float變數用「==」或「!=」與數字比較,應該設法轉化成「>=」或「<=」形式。如果寫成if (x == 0.0),則是錯誤的。

因為1.0在計算機中可能存為0.999999或1.00001等,很難恰好是1.0

4、 有符號數是怎樣儲存的?

第一位是符號位,1為負,0為正

5、 有符號數是怎樣移位的?

僅是無符號數操作,左移動n位,是乘以2的n次方

右移n位,是除以2的n次方

帶符號數操作,丟棄符號位最高位,0補最低位。

總之,在c中,左移是邏輯/算術左移(兩者完全相同),右移是算術右移,會保持符號位不變.實際應用中可以根據情況用左/右移做快速的乘/除運算,這樣會比迴圈效率高很多

6、 陣列名、指標和位址之間有什麼關係?

陣列名就是陣列第乙個元素的位址,用其代替陣列位址。a=&a[0]

7、 指標常量、常量指標和常量常指標有什麼區別?

int a;

int * const p = &a    //指標常量,*p可以修改*p = 8;(ok)

p不可以修改 p++(error)

int a,b;

const int *p = &a;//常量指標    *p不可修改 *p = 8;(error)

p 可以修改 p = &b  (ok)

還有一種

const int * const p = &a;    // *p 和 p均不可改變了

8、 空指標和野指標有什麼區別?

空指標:空指標是乙個特殊的指標值,也是唯一乙個對任何指標型別都合法的指標值。指標變數具有空指標值,表示它當時處於閒置狀態,沒有指向有意義的東西。

通用指標:通用指標,它可以指向任何型別的變數。通用指標的型別用(void *)表示,因此也稱為void 指標。

野指標:野指標也就是指向不可用記憶體區域的指標。通常對這種指標進行操作的話,將會使程式發生不可預知的錯誤。

#include

int main()

12、 預處理都做了什麼?

注釋,define(typedef在編譯階段,不在預處理),條件編譯

#include#define test 3 //巨集定義 test 為3 

void main(void)

13、 static定義的變數和函式各有什麼性質?

不可以被其他檔案引用

14、 sizeof是函式嗎,和strlen有什麼區別?

sizeof是算符,strlen是函式。 

sizeof還可以用函式做引數,比如: 

short f();

printf("%d\n", sizeof(f()));

輸出的結果是sizeof(short)

大部分編譯程式 在編譯的時候就把sizeof計算過了 

char str[20]="0123456789";

int a=strlen(str); //a=10;

int b=sizeof(str); //而b=20;

15、 volatile和**優化有什麼關係嗎?

a=x;

b=x;

比如x被使用了兩次,但是他的值沒有被修改,那麼編譯器就會把x存到乙個地方,而不是初始點,這樣再用x時就直接從這個地方獲取,更快。

但是x的值被改變了就不一樣了。如果沒有規定volatile的話,編譯器為了安全就不會設定上面提到的這樣的快取區,就不會優化。有了的話,如果不用關鍵字volatile的話,計算機就會嘗試用這樣的乙個快取區進行優化。因此volatile的設定給計算機(編譯器)優化的機會。另外volatile和const可以同時用,程式自身不能修改,但是可以被程式以外的**改變。

對張量的理解,Tensor

講解contiguous,因為view需要連續的,但是現在reshape已經實現了congtiguous和view功能。個人覺的這個解釋很好 什麼是張量 tensor實際上就是乙個多維陣列 multidimensional array 其目的是能夠創造更高維度的矩陣 向量。為什麼用variable ...

對學長TD課程通的評價

首先進入軟體首先是課程介面,設計的簡單精緻,功能全面,就是背景圖稍微有點粗糙,但用到校徽的想法很好。在 課程 表介面長按乙個課表可以刪除它,我感覺這個設計很巧妙,但是是不是要加乙個鎖定功能,萬一不小心長按了,就沒了。新建課程裡面星期幾的課,從第幾節課開始,第幾節課結束還有課室,這些設定成選項就更好了...

tensorflow實現對張量資料的切片操作

import tensorflow as tf a tf.constant 1,2,3,4 4,5,6,7 7,8,9,10 11,12,13,14 20,21,22,23 15,16,17,18 print a.shape b,c tf.split a,2,0 引數1 張量 2 獲得的切片數 3 ...